[[nodiscard]] auto xx() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x00u)); }
[[nodiscard]] auto xy() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x10u)); }
[[nodiscard]] auto xz() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x20u)); }
[[nodiscard]] auto yx() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x01u)); }
[[nodiscard]] auto yy() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x11u)); }
[[nodiscard]] auto yz() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x21u)); }
[[nodiscard]] auto zx() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x02u)); }
[[nodiscard]] auto zy() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x12u)); }
[[nodiscard]] auto zz() const noexcept { return dsl::def<Vector<T, 2>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 2>>(), this->expression(), 2u, 0x22u)); }
[[nodiscard]] auto xxx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x000u)); }
[[nodiscard]] auto xxy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x100u)); }
[[nodiscard]] auto xxz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x200u)); }
[[nodiscard]] auto xyx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x010u)); }
[[nodiscard]] auto xyy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x110u)); }
[[nodiscard]] auto xyz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x210u)); }
[[nodiscard]] auto xzx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x020u)); }
[[nodiscard]] auto xzy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x120u)); }
[[nodiscard]] auto xzz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x220u)); }
[[nodiscard]] auto yxx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x001u)); }
[[nodiscard]] auto yxy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x101u)); }
[[nodiscard]] auto yxz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x201u)); }
[[nodiscard]] auto yyx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x011u)); }
[[nodiscard]] auto yyy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x111u)); }
[[nodiscard]] auto yyz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x211u)); }
[[nodiscard]] auto yzx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x021u)); }
[[nodiscard]] auto yzy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x121u)); }
[[nodiscard]] auto yzz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x221u)); }
[[nodiscard]] auto zxx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x002u)); }
[[nodiscard]] auto zxy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x102u)); }
[[nodiscard]] auto zxz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x202u)); }
[[nodiscard]] auto zyx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x012u)); }
[[nodiscard]] auto zyy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x112u)); }
[[nodiscard]] auto zyz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x212u)); }
[[nodiscard]] auto zzx() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x022u)); }
[[nodiscard]] auto zzy() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x122u)); }
[[nodiscard]] auto zzz() const noexcept { return dsl::def<Vector<T, 3>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 3>>(), this->expression(), 3u, 0x222u)); }
[[nodiscard]] auto xxxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0000u)); }
[[nodiscard]] auto xxxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1000u)); }
[[nodiscard]] auto xxxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2000u)); }
[[nodiscard]] auto xxyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0100u)); }
[[nodiscard]] auto xxyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1100u)); }
[[nodiscard]] auto xxyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2100u)); }
[[nodiscard]] auto xxzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0200u)); }
[[nodiscard]] auto xxzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1200u)); }
[[nodiscard]] auto xxzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2200u)); }
[[nodiscard]] auto xyxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0010u)); }
[[nodiscard]] auto xyxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1010u)); }
[[nodiscard]] auto xyxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2010u)); }
[[nodiscard]] auto xyyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0110u)); }
[[nodiscard]] auto xyyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1110u)); }
[[nodiscard]] auto xyyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2110u)); }
[[nodiscard]] auto xyzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0210u)); }
[[nodiscard]] auto xyzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1210u)); }
[[nodiscard]] auto xyzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2210u)); }
[[nodiscard]] auto xzxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0020u)); }
[[nodiscard]] auto xzxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1020u)); }
[[nodiscard]] auto xzxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2020u)); }
[[nodiscard]] auto xzyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0120u)); }
[[nodiscard]] auto xzyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1120u)); }
[[nodiscard]] auto xzyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2120u)); }
[[nodiscard]] auto xzzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0220u)); }
[[nodiscard]] auto xzzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1220u)); }
[[nodiscard]] auto xzzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2220u)); }
[[nodiscard]] auto yxxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0001u)); }
[[nodiscard]] auto yxxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1001u)); }
[[nodiscard]] auto yxxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2001u)); }
[[nodiscard]] auto yxyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0101u)); }
[[nodiscard]] auto yxyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1101u)); }
[[nodiscard]] auto yxyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2101u)); }
[[nodiscard]] auto yxzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0201u)); }
[[nodiscard]] auto yxzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1201u)); }
[[nodiscard]] auto yxzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2201u)); }
[[nodiscard]] auto yyxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0011u)); }
[[nodiscard]] auto yyxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1011u)); }
[[nodiscard]] auto yyxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2011u)); }
[[nodiscard]] auto yyyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0111u)); }
[[nodiscard]] auto yyyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1111u)); }
[[nodiscard]] auto yyyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2111u)); }
[[nodiscard]] auto yyzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0211u)); }
[[nodiscard]] auto yyzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1211u)); }
[[nodiscard]] auto yyzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2211u)); }
[[nodiscard]] auto yzxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0021u)); }
[[nodiscard]] auto yzxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1021u)); }
[[nodiscard]] auto yzxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2021u)); }
[[nodiscard]] auto yzyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0121u)); }
[[nodiscard]] auto yzyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1121u)); }
[[nodiscard]] auto yzyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2121u)); }
[[nodiscard]] auto yzzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0221u)); }
[[nodiscard]] auto yzzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1221u)); }
[[nodiscard]] auto yzzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2221u)); }
[[nodiscard]] auto zxxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0002u)); }
[[nodiscard]] auto zxxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1002u)); }
[[nodiscard]] auto zxxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2002u)); }
[[nodiscard]] auto zxyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0102u)); }
[[nodiscard]] auto zxyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1102u)); }
[[nodiscard]] auto zxyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2102u)); }
[[nodiscard]] auto zxzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0202u)); }
[[nodiscard]] auto zxzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1202u)); }
[[nodiscard]] auto zxzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2202u)); }
[[nodiscard]] auto zyxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0012u)); }
[[nodiscard]] auto zyxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1012u)); }
[[nodiscard]] auto zyxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2012u)); }
[[nodiscard]] auto zyyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0112u)); }
[[nodiscard]] auto zyyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1112u)); }
[[nodiscard]] auto zyyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2112u)); }
[[nodiscard]] auto zyzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0212u)); }
[[nodiscard]] auto zyzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1212u)); }
[[nodiscard]] auto zyzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2212u)); }
[[nodiscard]] auto zzxx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0022u)); }
[[nodiscard]] auto zzxy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1022u)); }
[[nodiscard]] auto zzxz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2022u)); }
[[nodiscard]] auto zzyx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0122u)); }
[[nodiscard]] auto zzyy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1122u)); }
[[nodiscard]] auto zzyz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2122u)); }
[[nodiscard]] auto zzzx() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x0222u)); }
[[nodiscard]] auto zzzy() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x1222u)); }
[[nodiscard]] auto zzzz() const noexcept { return def<Vector<T, 4>>(detail::FunctionBuilder::current()->swizzle(Type::of<Vector<T, 4>>(), this->expression(), 4u, 0x2222u)); }

